<?php namespace Admin\Controller; 

use Common\Model\Cate;
use Common\Model\TypeAttr;

//类型管理控制器
class TypeController extends CommonController{
	//定义属性
	private $typeModel;
	
	//自定义构造函数
	public function __auto(){
		//实例化对象（类型表）
		$this->typeModel = new \Common\Model\Type;
	}
	
    //查
    public function index(){
    	//1.分页显示
		$page = Page::row(8)->make(Db::table('type')->count());
		View::with('page',$page);
		
    	//2.列出类型
    	$typeData=Db::table('type')->limit(Page::limit())->get();//获取类型数据
		if(!$typeData) View::success('先去添加类型',U('addType'));//如果类型表中没数据就跳转addType添加数据
		View::with('typeData',$typeData);//分配变量
		
		View::make();
	}
	
	//删
	public function del(){
		//1.获取要删除的tid
		$tid=Q('get.tid',0,'intval');
		$typeData=$this->typeModel->where('tid',"{$tid}")->pluck('tname');//获取要删的tid对应的tname
		
		//2.判断该类型下是否有分类，如果就先要提示先删除分类
		$cateModel = new Cate();
		$cateData = $cateModel->where("wsshop_type_tid={$tid}")->get();
		if($cateData) View::error('该类型下有分类');
		
		//3.判断该类型下是否有类型属性，如果就提示先删除类型属性
		$typeAttrModel = new TypeAttr();
		$typeAttrData = $typeAttrModel->where("wsshop_type_tid={$tid}")->get();
		if($typeAttrData) View::error('该类型下有类型属性');
		
		//4.删除该类型
		$this->typeModel->where("tid={$tid}")->delete();
		View::success("成功删除[{$typeData}]");
	}
	
	//编辑类型
	public function editType(){
		//二.编辑数据
		if(IS_POST){//1.判断是否有post提交过来修改的数据
			if($this->typeModel->editType()) View::success('修改成功','Type/index');
			View::error($this->typeModel->getError());//修改失败提示错误信息-自动验证
		}
		
		//一.在页面显示旧数据
		$tid=Q('get.tid',0,'intval');//1.获取要编辑的tid
		$typeData=$this->typeModel->where('tid',"{$tid}")->first();//2.查询tid对应的数据
		View::with('typeData',$typeData);//3.分配变量
		
		//载入编辑类型模版
		View::make();
	}
	
	//添加类型
	public function addType(){
		//1.判断是否有post传值过来
		if(IS_POST){
			//1.1调用store方法添加，成功后提示
			if($this->typeModel->store()) View::success('添加成功');
			//1.2添加不成功的话提示错误
			View::error($this->typeModel->getError());
		}
		//载入添加类型页面
		View::make();
	}
}
